JNI – Java Native Interface je rozhraní umožňující propojit kód běžící na virtuálním stroji Javy s nativními programy a knihovnami napsanými v jiných jazycích – např. C, C++, Assembler, apod., které jsou zkompilované pro určitý hardware, případně operační systém. Jedná se tedy o jakýsi převodní můstek, pomocí kterého se můžeme dostat za hranice virtuálního stroje.
JNI není omezeno pouze na jazyk Java. Jako takové je toto rozhraní součástí virtuálního stroje, lze k němu tedy přistupovat z libovolného jazyka překládaného do javovského bytekódu a spouštěného na platformě JVM. Kromě Javy ho tedy lze využít i v jazycích jako je Groovy, Jython, JRuby, apod. Vše, co bude dále řečeno v souvislosti s JNI, tedy platí i pro tyto jazyky.